#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

//int ReTu(int* arr)
//{
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int c = 0;
//	for (int i = 0; i < sz; i++)
//	{
//		c ^= arr[i];
//	}
//	return c;
//}
//int main()
//{
//	int arr[4] = { 1,1,2 ,3 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int* arr1 = (int*)malloc(sz * sizeof(int));
//	int* arr2 = (int*)malloc(sz * sizeof(int));
//	int c = ReTu(arr);
//	int q = 1;
//	
//	if (arr1 == NULL || arr2 == NULL)
//	{
//		perror(malloc);
//		return;
//	}
//	int i = 0;
//	
//	for (i = 0; i < 31; i++)
//	{
//		c >> 1;
//		q << 1;
//		if (c & 1)
//		{
//			break;
//		}
//	}
//	int j = 0;
//	int k = 0;
//	for (i = 0; i < sz; i++)
//	{
//		if (arr[i] & q)
//		{
//			arr1[j++] = arr[i];
//		}
//		else
//		{
//			arr2[k++] = arr[i];
//		}
//	}
//	printf("%d %d", ReTu(arr1), ReTu(arr2));
//	return 0;
//}
//
//
//int ZiChu(int a, int b)
//{
//	int p = 0;
//	int* arr = (int*)malloc((a - b + 1) * sizeof(int));
//	if (arr == NULL)
//	{
//		perror("malloc");
//		return;
//	}
//	for (int i = a; i <= b; i++)
//	{
//		int n = 0;
//		int m = i;
//		int j = 1;
//		int flag = 0;
//		while (n / 10)
//		{
//			n = m / (10 * j);
//			if (i % n)
//			{
//				flag = 1;
//				break;
//			}
//			
//			j++;
//		}
//		if (flag == 0)
//		{
//			arr[p++] = i;
//		}
//		
//	}
//	return arr;
//}


bool Judge(int num)
{
	int tmp = num;
	while (tmp > 0)
	{
		int k = tmp % 10;
		if (k == 0 || 0 != num % k)
		{
			return false;
		}
		tmp /= 10;
	}
	return true;
}


void Swap(int* p1, int* p2)
{
	*p1 = *p1 ^ *p2;
	*p2 = *p1 ^ *p2;
	*p1 = *p1 ^ *p2;
	
}
int main()
{
	int arr[3] = { 3,2,1 };
	int i = 0;
	int sz = sizeof(arr) / sizeof(arr[0]);
	int j = sz - 1;
	while (i++ < j--)
	{
		if (arr[i] > arr[j]);
		{
			Swap(&arr[i], &arr[j]);
		}
	}
	return 0;
}